The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Today, professional as well as non-professional users in a variety of different fields, such as engineering, architecture, automotive design, graphic design, advertising, fashion design, medicine, etc., can develop three-dimensional (3D) models of buildings, vehicles, and other objects using 3D modeling software that operates on a computing device. A user typically interacts with 3D modeling software via input devices such as a keyboard, mouse, trackball, and/or stylus, and the drafting document is displayed on a graphical display device, such as a computer monitor or screen.
In general, 3D modeling software allows a user to draw various three-dimensional shapes (directly or by defining two-dimensional faces that make up 3D shapes), apply colors and/or textures to the shapes, move, scale, rotate, and skew the shapes, etc. 3D modeling software typically provides the user with stock objects (e.g., 3D shapes such as spheres or parallelepipeds and/or two-dimensional (2D) shapes such as arcs, circles, rectangles, and other known geometric shapes) and/or provides tools to create such objects. Further, 3D modeling software typically allows users to save models as files that conform to a certain predefined format. To share models, users transmit to each other files with the corresponding model data, or upload the files to data servers.
Users usually develop 3D models by sequentially entering various drawing and image manipulation commands via a graphical user interface (GUI). For example, to model a two-story building, a user may first draw a four-wall structure, draw a door in one of the walls, then draw several windows in the walls, etc. The user may then paint or texture the walls, the roof, and other portions of the model. Many objects may need to be repeatedly drawn within a three-dimensional object. For the two-story building, a particular style of window may need to be drawn several times within the various floors of the building, a particular style of roof may be repeated across a wide area, shutters or other decorative structures may need to be repeatedly placed next to the windows, etc. Accordingly, it may take a significant amount of time for a user or group of users to develop a complex and detailed model that includes actions or objects that need to be repeated many times to complete the building.